/** @author Taha */
/**
*@brief stage 1 flechettes
bref
*/
/** @file facile.c */




# include <stdio.h>
# include <stdlib.h>
# include <SDL/SDL.h>
# include "SDL/SDL_mixer.h"
#include <SDL/SDL_image.h>
# include <SDL/SDL_ttf.h>
 # include "time.h"
typedef struct
{
	char key[SDLK_LAST];
	int mousex,mousey;
	int mousexrel,mouseyrel;
	char mousebuttons[8];
        char quit;
} Input;


void getPixelColor(int x, int y, SDL_Surface *map,Uint8 *r,Uint8 *g,Uint8 *b) ;
void UpdateEvents(Input* in);
void ciblef (SDL_Surface *ecran);
void back1 (SDL_Surface *ecran);
void back2 (SDL_Surface *ecran);
void fleche (SDL_Surface *ecran);
void jauge (SDL_Surface *ecran);
void jaugee (SDL_Surface *ecran);
void persoo (SDL_Surface *ecran);
void perso (SDL_Surface *ecran);
void serveur2 (SDL_Surface *ecran);
void serveur (SDL_Surface *ecran);
void affiche (SDL_Surface *ecran);
void gris (SDL_Surface *ecran);
void menu1 (SDL_Surface *ecran);
void newgameclic (SDL_Surface *ecran);
void loadgameclic (SDL_Surface *ecran);
void optionclic (SDL_Surface *ecran);
void quickgameclic (SDL_Surface *ecran);
void textee (SDL_Surface *ecran);
void flechetir (SDL_Surface *ecran);
void mexini (SDL_Surface *ecran);
void mexicain (SDL_Surface *ecran);
void flechetiradv (SDL_Surface *ecran);
void jaugex (SDL_Surface *ecran);
void jaugeey (SDL_Surface *ecran);
void back1p (SDL_Surface *ecran);
void back2p (SDL_Surface *ecran);
void muclic (SDL_Surface *ecran);
void mu (SDL_Surface *ecran);
void figure1 (SDL_Surface *ecran);
void figure2 (SDL_Surface *ecran);
SDL_Surface *cible = NULL ;


Uint8 r,g,b,r1,g1,b1,r2,g2,b2,r3,g3,b3,r4,g4,b4,rNoir,gNoir,bNoir,rBleu,gBleu,bBleu,rRouge1,gRouge1,bRouge1,rRouge2,gRouge2,bRouge2,rJaune1,gJaune1,bJaune1,rJaune2,gJaune2,bJaune2,rVert,gVert,bVert,rBlanc,gBlanc,bBlanc;









int main(int argc, char *argv[])
{



rNoir = 32;
gNoir = 27;
bNoir = 23;


rBleu = 2;
gBleu = 147;
bBleu = 220;


rRouge1 = 218;
gRouge1 = 40;
bRouge1 =27;


rBlanc = 255;
gBlanc = 255;
bBlanc =255;

rRouge2 = 228;
gRouge2 = 41;
bRouge2 =27;


rJaune1 = 255;
gJaune1 = 247;
bJaune1 =2;



rJaune2 = 255;
gJaune2 = 255;
bJaune2 =1;


rVert = 1;
gVert = 112;
bVert =1;




int i=0,j=0;


float power=0.002;
int J2=0;
int J1=1;
int scoretot=0;int scoretotadv=0;
int action1=0,action2=0;
int tempsPrecedent=0;
int essai=0,essaitot=0;
 int tempsActuel;
 int tempsActuele;
 int tempsActuelee;
int min=20;
int max=166;
int menu=0;
int Back=0;
char score[20] = "";
int scores=0;
int scoref=0;
int scoresadv=0,essaiadv=0;
int Min=200,Max=371;
int test0=0,test1=0,test2=0,test3=0,test4=0,test5=0,test6=0,test7=0,test8=0,test9=0,test10=0,test11=0,test12=0;
int a,p=0;
int musique=0,clic=0;
//declaration des variables images

//FILE* F;
//F=fopen("/dev/ttyACM0","a");


 TTF_Font *police = NULL;
SDL_Color couleurNoire = {0, 0, 0},couleurBlanche = {255, 255, 255};

SDL_Surface *ecran = NULL ,
*fleche1=NULL,*curseur=NULL,*curseure=NULL,*NewGame=NULL,*QuickGame=NULL,*LoadGame=NULL,*Option=NULL,*Stage1=NULL,*Stage2=NULL,*Stage3=NULL,*Stage4=NULL,*Stage5=NULL,*Stage6=NULL,
*NewGameClic=NULL,*QuickGameClic=NULL,*LoadGameClic=NULL,*OptionClic=NULL,*Stage1Clic=NULL,*Stage2Clic=NULL,*Stage3Clic=NULL,*Stage4Clic=NULL,*Stage5Clic=NULL,*Stage6Clic=NULL,*texte = NULL;

// position des image
SDL_Rect positiontexte;
SDL_Rect positionfleche1;
SDL_Rect positioncurseur;
SDL_Rect positioncurseure;
SDL_Rect positionNewGame;
SDL_Rect positionLoadGame;
SDL_Rect positionQuickGame;
SDL_Rect positionOption;
SDL_Rect positionStage1;
SDL_Rect positionStage2;
SDL_Rect positionStage3;
SDL_Rect positionStage4;
SDL_Rect positionStage5;
SDL_Rect positionStage6;
SDL_Rect positionNewGameClic;
SDL_Rect positionLoadGameClic;
SDL_Rect positionQuickGameClic;
SDL_Rect positionOptionClic;
SDL_Rect positionStage1Clic;
SDL_Rect positionStage2Clic;
SDL_Rect positionStage3Clic;
SDL_Rect positionStage4Clic;
SDL_Rect positionStage5Clic;
SDL_Rect positionStage6Clic;

SDL_Init(SDL_INIT_VIDEO);
    TTF_Init();
positionNewGame.x =80;
positionNewGame.y = 0;
positionLoadGame.x =80;
positionLoadGame.y = 100;
positionQuickGame.x =80;
positionQuickGame.y = 200;
positionOption.x =80;
positionOption.y = 300;
positionStage1.x =500;
positionStage1.y = 100;
positionStage2.x =500;
positionStage2.y = 150;
positionStage3.x =500;
positionStage3.y = 200;
positionStage4.x =500;
positionStage4.y = 250;
positionStage5.x =500;
positionStage5.y = 300;
positionStage6.x =500;
positionStage6.y = 350;
positionNewGameClic.x =80;
positionNewGameClic.y = 0;
positionLoadGameClic.x =80;
positionLoadGameClic.y = 100;
positionQuickGameClic.x =80;
positionQuickGameClic.y = 200;
positionOptionClic.x =80;
positionOptionClic.y = 300;
positionStage1Clic.x =500;
positionStage1Clic.y = 100;
positionStage2Clic.x =500;
positionStage2Clic.y = 150;
positionStage3Clic.x =500;
positionStage3Clic.y = 200;
positionStage4Clic.x =500;
positionStage4Clic.y = 250;
positionStage5Clic.x =500;
positionStage5Clic.y = 300;
positionStage6Clic.x =500;
positionStage6Clic.y = 350;


Mix_Music *music;
//
//fonctions necessaire au fonctionnement de la fenetre
//
ecran = SDL_SetVideoMode(1300, 700, 32, SDL_HWSURFACE | SDL_DOUBLEBUF| SDL_RESIZABLE);
SDL_WM_SetCaption("HEADSHOT !", NULL);
/* Chargement de la police */
  police = TTF_OpenFont("police/AA.otf", 30);
 sprintf(score, "score : %d", scores);
texte = TTF_RenderText_Shaded(police, score, couleurNoire ,couleurBlanche);

//chargement de toutes les images

NewGame=IMG_Load("monJeu/touches/newgame.png");
LoadGame= IMG_Load("monJeu/touches/loadgame.png");
QuickGame=IMG_Load("monJeu/touches/quickgame.png");
Option= IMG_Load("monJeu/touches/option.png");
Stage1=IMG_Load("monJeu/touches/stage1.png");
Stage2= IMG_Load("monJeu/touches/stage2.png");
Stage3=IMG_Load("monJeu/touches/stage3.png");
Stage4= IMG_Load("monJeu/touches/stage4.png");
Stage5=IMG_Load("monJeu/touches/stage5.png");
Stage6= IMG_Load("monJeu/touches/stage6.png");
NewGameClic=IMG_Load("monJeu/touches/newgameclic.png");
LoadGameClic= IMG_Load("monJeu/touches/loadgameclic.png");
QuickGameClic=IMG_Load("monJeu/touches/quickgameclic.png");
OptionClic= IMG_Load("monJeu/touches/optionclic.png");
Stage1Clic=IMG_Load("monJeu/touches/stage1clic.png");
Stage2Clic= IMG_Load("monJeu/touches/stage2clic.png");
Stage3Clic=IMG_Load("monJeu/touches/stage3clic.png");
Stage4Clic= IMG_Load("monJeu/touches/stage4clic.png");
Stage5Clic=IMG_Load("monJeu/touches/stage5clic.png");
Stage6Clic= IMG_Load("monJeu/touches/stage6clic.png");
curseur= IMG_Load("monJeu/flechettey0.png");//on charge le curseur
curseure= IMG_Load("monJeu/flechettey0.png");
fleche1=IMG_Load("monJeu/flechettey0.png");
//gestion des positions dependantes
positioncurseur.x =  2;
 positioncurseur.y = 650;
positioncurseure.x = 1200 ;
positioncurseure.y =   2;

//gestion de la transparence

SDL_SetColorKey(fleche1, SDL_SRCCOLORKEY, SDL_MapRGB(fleche1->format, 255, 255, 255));
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));

affiche(ecran);
gris(ecran);
menu1(ecran);




Mix_OpenAudio( 22050, MIX_DEFAULT_FORMAT, 2, 1024 );


//debut de notre boucle
	Input in;
	// init SDL, chargement, tout ce que vous faites avant la boucle.
	memset(&in,0,sizeof(in));
	while(!in.key[SDLK_ESCAPE] && !in.quit)
	{
//F=fopen("/dev/ttyACM0","a");
		UpdateEvents(&in);
if(in.mousexrel<600&&in.mousexrel>400&&in.mouseyrel<400&&in.mouseyrel>200&&test4==1)
{

clic=1;
}
else
{
clic=0;
}
		if (in.mousebuttons[SDL_BUTTON_LEFT])
		{
			in.mousebuttons[SDL_BUTTON_LEFT] = 0;
menu=1;
if(in.mousex<600&&in.mousex>400&&in.mousey<400&&in.mousey>200&&test4==1&&clic==1)
{
musique=1;
}
if(menu==1&&in.mousex>positionNewGame.x&&in.mousex<positionNewGame.x+NewGame->w&&in.mousey>positionNewGame.y&&in.mousey<positionNewGame.y+NewGame->h&&test0==0&&test1==0&&test2==0&&test3==0)

{
newgameclic(ecran);
SDL_Flip(ecran);

test0++;
}
if(menu==1&&in.mousex>positionLoadGame.x&&in.mousex<positionLoadGame.x+LoadGame->w&&in.mousey>positionLoadGame.y&&in.mousey<positionLoadGame.y+LoadGame->h&&test0==0&&test1==0&&test2==0&&test3==0)

{
loadgameclic(ecran);
SDL_Flip(ecran);

test1++;
}
if(menu==1&&in.mousex>positionQuickGame.x&&in.mousex<positionQuickGame.x+QuickGame->w&&in.mousey>positionQuickGame.y&&in.mousey<positionQuickGame.y+QuickGame->h&&test0==0&&test1==0&&test2==0&&test3==0)

{
quickgameclic(ecran);
SDL_Flip(ecran);

test2++;
}
if(menu==1&&in.mousex>positionOption.x&&in.mousex<positionOption.x+Option->w&&in.mousey>positionOption.y&&in.mousey<positionOption.y+Option->h&&test0==0&&test1==0&&test2==0&&test3==0)

{
optionclic(ecran);
SDL_Flip(ecran);

test3++;
}
			// fait une seule fois.
//cible (ecran);
//G2 (ecran);

SDL_Flip(ecran);
		}	



		if (in.key[SDLK_c])
                {
                     // simplification de la gestion des touches
//G2 (ecran);
power=5;
                }
	

		if (in.key[SDLK_w])
                {
                     // simplification de la gestion des touches
//G2 (ecran);
action1=1;

                }
		if (in.key[SDLK_x])
                {
                     // simplification de la gestion des touches
//G2 (ecran);
action2=1;
power=0.002;
                }
if(test0==1&&test4==0)
{
SDL_Delay(2000);
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));
//tempsActuelee = SDL_GetTicks();
textee(ecran);
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));
back1(ecran);
back2(ecran);
mu(ecran);
ciblef(ecran);
fleche(ecran);
jauge(ecran);
jaugee(ecran);
persoo(ecran);
SDL_Flip(ecran);
test4++;
}


//gestion des animations 

a = SDL_GetTicks();
if(a-p>5&&a-p<5000&&test4==1&&p!=50)
{
back2(ecran);
serveur(ecran);
figure1(ecran);
//SDL_Flip(ecran);
}
if(a-p>=5000&&a-p<=10000&&test4==1&&p!=50)
{
back2(ecran);
serveur(ecran);
figure2(ecran);
//SDL_Flip(ecran);
}
if(a-p>10000&&a-p>=15000&&test4==1&&p!=50)
{
back2(ecran);
serveur(ecran);
figure1(ecran);
//SDL_Flip(ecran);
}

if(a-p>15000&&a-p>=20000&&test4==1&&p!=50)
{
back2(ecran);
serveur2(ecran);
figure2(ecran);
//SDL_Flip(ecran);
}

if(a-p>20000&&a-p>=25000&&test4==1&&p!=50)
{
back2(ecran);
serveur2(ecran);
figure1(ecran);
//SDL_Flip(ecran);
}
if(a-p>=30000)
{
p=a;

}






if(test0==1&&p!=50)
{
mu(ecran);
}

if(musique==1)
{
music = Mix_LoadMUS("monJeu/thunder.mp3");
Mix_PlayMusic(music,1);
musique=0;

}
if(clic==1)
{
muclic(ecran);

SDL_Flip(ecran);
}





 tempsActuel = SDL_GetTicks();
tempsActuele = SDL_GetTicks();
 if ((tempsActuele - tempsPrecedent > power)&&(essai<1)&&test0==1&&(action1!=1)) // Si 0.02 ms se sont écoulées depuis le dernier tour de boucle 
    
    {
while(positioncurseur.x++==1300)//tant que le curseur.x atteindra 900 il revient a 0
{


/***/
positioncurseur.x=0;
}

     

          
  positioncurseur.x++; //on bouge le curseur

 SDL_BlitSurface(curseur, NULL, ecran, &positioncurseur);

            tempsPrecedent = tempsActuele; //Le temps "actuel" devient le temps "precedent" pour nos futurs calculs 




SDL_Flip(ecran);

}
if (tempsActuel - tempsPrecedent > power &&essai<1&&test0==1) // Si 0.02 ms se sont écoulées depuis le dernier tour de boucle 
    
    {


while(positioncurseure.y++==700)//tant que le curseur.x atteindra 900 il revient a 0
{
positioncurseure.y=0;
}
positioncurseure.y=positioncurseure.y+10;

SDL_BlitSurface(curseure, NULL, ecran, &positioncurseure);

 tempsPrecedent = tempsActuel;
SDL_Flip(ecran);
}

if((action1==1)&&(essai<1))
{
positionfleche1.x=200+((positioncurseur.x*171)/1300);
SDL_Flip(ecran);


}
if(action2==1&&essai<1)
{
positionfleche1.y=25+((positioncurseure.y*146)/1000);
perso(ecran);
flechetir(ecran);

SDL_BlitSurface(fleche1, NULL, ecran, &positionfleche1);
persoo(ecran);
//back2(ecran);
SDL_Flip(ecran);

SDL_Delay(2000);

fleche(ecran);

action2=0;
action1=0;
essai++;


getPixelColor(positionfleche1.x,positionfleche1.y,ecran,&r1,&g1,&b1);
printf("-%d -%d -%d\n",r1,g1,b1);
if(r1<rNoir+10&&r1>rNoir-10&&g1>=gNoir-10&&g1<=gNoir+10&&b1<=bNoir+10&&b1>=bNoir-10)
{
/**
*@bug
*n'affiche pas le texte a tous les coups
*/


printf("HELLO000\n");
scores=10;
 sprintf(score, "score : %d", scores);
texte = TTF_RenderText_Shaded(police, score, couleurNoire ,couleurBlanche);
  SDL_BlitSurface(texte, NULL, ecran, &positiontexte); /* Blit du texte */
scoretot=scoretot+scores;
printf("%d \n",scoretot);
SDL_Flip(ecran);
}

if(r1<rBleu+10&&r1>rBleu-10&&g1>=gBleu-10&&g1<=gBleu+10&&b1<=bBleu+10&&b1>=bBleu-10)
{
printf("HELLO\n");
scores=20;
 sprintf(score, "score : %d", scores);
SDL_FreeSurface(texte);
texte = TTF_RenderText_Shaded(police, score, couleurNoire ,couleurBlanche);
  SDL_BlitSurface(texte, NULL, ecran, &positiontexte); /* Blit du texte */
scoretot=scoretot+scores;
printf("%d \n",scoretot);
SDL_Flip(ecran);
}


if(r1<rBlanc+10&&r1>rBlanc-10&&g1>=gBlanc-10&&g1<=gBlanc+10&&b1<=bBlanc+10&&b1>=bBlanc-10)
{
printf("HELLO\n");
scores=0;
 sprintf(score, "score : %d", scores);
SDL_FreeSurface(texte);
texte = TTF_RenderText_Shaded(police, score, couleurNoire ,couleurBlanche);
  SDL_BlitSurface(texte, NULL, ecran, &positiontexte); /* Blit du texte */
scoretot=scoretot+scores;
printf("%d \n",scoretot);
SDL_Flip(ecran);
}

if(r1<rRouge1+10&&r1>rRouge1-10&&g1>=gRouge1-10&&g1<=gRouge1+10&&b1<=bRouge1+10&&b1>=bRouge1-10)
{
printf("HELLO\n");
scores=30;
 sprintf(score, "score : %d", scores);
SDL_FreeSurface(texte);
texte = TTF_RenderText_Shaded(police, score, couleurNoire ,couleurBlanche);
  SDL_BlitSurface(texte, NULL, ecran, &positiontexte); /* Blit du texte */
scoretot=scoretot+scores;
printf("%d \n",scoretot);
SDL_Flip(ecran);
}

if(r1<rRouge2+10&&r1>rRouge2-10&&g1>=gRouge2-10&&g1<=gRouge2+10&&b1<=bRouge2+10&&b1>=bRouge2-10)
{
printf("HELLO\n");
scores=35;
 sprintf(score, "score : %d", scores);
SDL_FreeSurface(texte);
texte = TTF_RenderText_Shaded(police, score, couleurNoire ,couleurBlanche);
  SDL_BlitSurface(texte, NULL, ecran, &positiontexte); /* Blit du texte */
scoretot=scoretot+scores;
printf("%d \n",scoretot);
SDL_Flip(ecran);
}

if(r1<rJaune1+10&&r1>rJaune1-10&&g1>=gJaune1-10&&g1<=gJaune1+10&&b1<=bJaune1+10&&b1>=bJaune1-10)
{
printf("HELLO\n");
scores=40;
 sprintf(score, "score : %d", scores);
SDL_FreeSurface(texte);
texte = TTF_RenderText_Shaded(police, score, couleurNoire ,couleurBlanche);
  SDL_BlitSurface(texte, NULL, ecran, &positiontexte); /* Blit du texte */
scoretot=scoretot+scores;
printf("%d \n",scoretot);
SDL_Flip(ecran);
}


if(r1<rJaune2+10&&r1>rJaune2-10&&g1>=gJaune2-10&&g1<=gJaune2+10&&b1<=bJaune2+10&&b1>=bJaune2-10)
{
printf("HELLO\n");
scores=45;
 sprintf(score, "score : %d", scores);
SDL_FreeSurface(texte);
texte = TTF_RenderText_Shaded(police, score, couleurNoire ,couleurBlanche);
  SDL_BlitSurface(texte, NULL, ecran, &positiontexte); /* Blit du texte */
scoretot=scoretot+scores;
printf("%d \n",scoretot);
SDL_Flip(ecran);
}

if(r1<rVert+10&&r1>rVert-10&&g1>=gVert-10&&g1<=gVert+10&&b1<=bVert+10&&b1>=bVert-10)
{
printf("HELLO\n");
scores=50;
 sprintf(score, "score : %d", scores);
SDL_FreeSurface(texte);
texte = TTF_RenderText_Shaded(police, score, couleurNoire ,couleurBlanche);
  SDL_BlitSurface(texte, NULL, ecran, &positiontexte); /* Blit du texte */
scoretot=scoretot+scores;
printf("%d \n",scoretot);
SDL_Flip(ecran);
}


if(r1!=rVert+10&&r1!=rVert-10&&g1!=gVert-10&&g1!=gVert+10&&b1!=bVert+10&&b1!=bVert-10&&r1!=rJaune2+10&&r1!=rJaune2-10&&g1!=gJaune2-10&&g1!=gJaune2+10&&b1!=bJaune2+10&&b1!=bJaune2-10&&r1!=rJaune1+10&&r1!=rJaune1-10&&g1!=gJaune1-10&&g1!=gJaune1+10&&b1!=bJaune1+10&&b1!=bJaune1-10&&r1!=rRouge2+10&&r1!=rRouge2-10&&g1!=gRouge2-10&&g1!=gRouge2+10&&b1!=bRouge2+10&&b1!=bRouge2-10&&r1!=rRouge1+10&&r1!=rRouge1-10&&g1!=gRouge1-10&&g1!=gRouge1+10&&b1!=bRouge1+10&&b1!=bRouge1-10&&r1!=rBleu+10&&r1!=rBleu-10&&g1!=gBleu-10&&g1!=gBleu+10&&b1!=bBleu+10&&b1!=bBleu-10&&r1!=rNoir+10&&r1!=rNoir-10&&g1!=gNoir-10&&g1!=gNoir+10&&b1!=bNoir+10&&b1!=bNoir-10&&r1!=rBlanc+10&&r1!=rBlanc-10&&g1!=gBlanc-10&&g1!=gBlanc+10&&b1!=bBlanc+10&&b1!=bBlanc-10)
{
printf("HELLO\n");
scores=20;
 sprintf(score, "score : %d", scores);
SDL_FreeSurface(texte);
texte = TTF_RenderText_Shaded(police, score, couleurNoire ,couleurBlanche);
  SDL_BlitSurface(texte, NULL, ecran, &positiontexte); /* Blit du texte */
scoretot=scoretot+scores;
printf("%d \n",scoretot);
//fprintf(F,"1");
//fclose(F);

SDL_Flip(ecran);
}

SDL_Delay(5000);
}



while(essai==1&&essaiadv<1)
{
//F=fopen("/dev/ttyACM0","a");
//fprintf(F,"2");
//fclose(F);
fleche(ecran);
//SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));
//back2(ecran);

mexini(ecran);
mexicain(ecran);

//cible(ecran);
srand(time(NULL));
positionfleche1.x = (rand() % (Max - Min + 1)) + Min;
positionfleche1.y = (rand() % (max - min + 1)) + min;


flechetiradv(ecran);
SDL_BlitSurface(fleche1, NULL, ecran, &positionfleche1);
//SDL_BlitSurface(texte, NULL, ecran, &positiontexte);
getPixelColor(positionfleche1.x,positionfleche1.y,ecran,&r1,&g1,&b1);
printf("-%d -%d -%d\n",r1,g1,b1);
if(r1<rNoir+10&&r1>rNoir-10&&g1>=gNoir-10&&g1<=gNoir+10&&b1<=bNoir+10&&b1>=bNoir-10)
{
printf("HELLO000\n");
scoresadv=10;
 sprintf(score, "score : %d", scores);
texte = TTF_RenderText_Shaded(police, score, couleurNoire ,couleurBlanche);
  SDL_BlitSurface(texte, NULL, ecran, &positiontexte); /* Blit du texte */
scoretotadv=scoretotadv+scoresadv;
printf("%d \n",scoretot);
SDL_Flip(ecran);
}

if(r1<rBleu+10&&r1>rBleu-10&&g1>=gBleu-10&&g1<=gBleu+10&&b1<=bBleu+10&&b1>=bBleu-10)
{
printf("HELLO\n");
scoresadv=20;
 sprintf(score, "score : %d", scores);
SDL_FreeSurface(texte);
texte = TTF_RenderText_Shaded(police, score, couleurNoire ,couleurBlanche);
  SDL_BlitSurface(texte, NULL, ecran, &positiontexte); /* Blit du texte */
scoretotadv=scoretotadv+scoresadv;
printf("%d \n",scoretot);
SDL_Flip(ecran);
}


if(r1<rBlanc+10&&r1>rBlanc-10&&g1>=gBlanc-10&&g1<=gBlanc+10&&b1<=bBlanc+10&&b1>=bBlanc-10)
{
printf("HELLO\n");
scoresadv=0;
 sprintf(score, "score : %d", scores);
SDL_FreeSurface(texte);
texte = TTF_RenderText_Shaded(police, score, couleurNoire ,couleurBlanche);
  SDL_BlitSurface(texte, NULL, ecran, &positiontexte); /* Blit du texte */
scoretotadv=scoretotadv+scoresadv;
printf("%d \n",scoretot);
SDL_Flip(ecran);
}

if(r1<rRouge1+10&&r1>rRouge1-10&&g1>=gRouge1-10&&g1<=gRouge1+10&&b1<=bRouge1+10&&b1>=bRouge1-10)
{
printf("HELLO\n");
scoresadv=30;
 sprintf(score, "score : %d", scores);
SDL_FreeSurface(texte);
texte = TTF_RenderText_Shaded(police, score, couleurNoire ,couleurBlanche);
  SDL_BlitSurface(texte, NULL, ecran, &positiontexte); /* Blit du texte */
scoretotadv=scoretotadv+scoresadv;
printf("%d \n",scoretot);
SDL_Flip(ecran);
}

if(r1<rRouge2+10&&r1>rRouge2-10&&g1>=gRouge2-10&&g1<=gRouge2+10&&b1<=bRouge2+10&&b1>=bRouge2-10)
{
printf("HELLO\n");
scoresadv=35;
 sprintf(score, "score : %d", scores);
SDL_FreeSurface(texte);
texte = TTF_RenderText_Shaded(police, score, couleurNoire ,couleurBlanche);
  SDL_BlitSurface(texte, NULL, ecran, &positiontexte); /* Blit du texte */
scoretotadv=scoretotadv+scoresadv;
printf("%d \n",scoretot);
SDL_Flip(ecran);
}

if(r1<rJaune1+10&&r1>rJaune1-10&&g1>=gJaune1-10&&g1<=gJaune1+10&&b1<=bJaune1+10&&b1>=bJaune1-10)
{
printf("HELLO\n");
scoresadv=40;
 sprintf(score, "score : %d", scores);
SDL_FreeSurface(texte);
texte = TTF_RenderText_Shaded(police, score, couleurNoire ,couleurBlanche);
  SDL_BlitSurface(texte, NULL, ecran, &positiontexte); /* Blit du texte */
scoretotadv=scoretotadv+scoresadv;
printf("%d \n",scoretot);
SDL_Flip(ecran);
}


if(r1<rJaune2+10&&r1>rJaune2-10&&g1>=gJaune2-10&&g1<=gJaune2+10&&b1<=bJaune2+10&&b1>=bJaune2-10)
{
printf("HELLO\n");
scoresadv=45;
 sprintf(score, "score : %d", scores);
SDL_FreeSurface(texte);
texte = TTF_RenderText_Shaded(police, score, couleurNoire ,couleurBlanche);
  SDL_BlitSurface(texte, NULL, ecran, &positiontexte); /* Blit du texte */
scoretotadv=scoretotadv+scoresadv;;
printf("%d \n",scoretot);
SDL_Flip(ecran);
}

if(r1<rVert+10&&r1>rVert-10&&g1>=gVert-10&&g1<=gVert+10&&b1<=bVert+10&&b1>=bVert-10)
{
printf("HELLO\n");
scoresadv=50;
 sprintf(score, "score : %d", scores);
SDL_FreeSurface(texte);
texte = TTF_RenderText_Shaded(police, score, couleurNoire ,couleurBlanche);
  SDL_BlitSurface(texte, NULL, ecran, &positiontexte); /* Blit du texte */
scoretotadv=scoretotadv+scoresadv;
printf("%d \n",scoretot);
SDL_Flip(ecran);
}


if(r1!=rVert+10&&r1!=rVert-10&&g1!=gVert-10&&g1!=gVert+10&&b1!=bVert+10&&b1!=bVert-10&&r1!=rJaune2+10&&r1!=rJaune2-10&&g1!=gJaune2-10&&g1!=gJaune2+10&&b1!=bJaune2+10&&b1!=bJaune2-10&&r1!=rJaune1+10&&r1!=rJaune1-10&&g1!=gJaune1-10&&g1!=gJaune1+10&&b1!=bJaune1+10&&b1!=bJaune1-10&&r1!=rRouge2+10&&r1!=rRouge2-10&&g1!=gRouge2-10&&g1!=gRouge2+10&&b1!=bRouge2+10&&b1!=bRouge2-10&&r1!=rRouge1+10&&r1!=rRouge1-10&&g1!=gRouge1-10&&g1!=gRouge1+10&&b1!=bRouge1+10&&b1!=bRouge1-10&&r1!=rBleu+10&&r1!=rBleu-10&&g1!=gBleu-10&&g1!=gBleu+10&&b1!=bBleu+10&&b1!=bBleu-10&&r1!=rNoir+10&&r1!=rNoir-10&&g1!=gNoir-10&&g1!=gNoir+10&&b1!=bNoir+10&&b1!=bNoir-10&&r1!=rBlanc+10&&r1!=rBlanc-10&&g1!=gBlanc-10&&g1!=gBlanc+10&&b1!=bBlanc+10&&b1!=bBlanc-10)
{
printf("HELLO\n");
scoresadv=19;
 sprintf(score, "score : %d", scores);
SDL_FreeSurface(texte);
texte = TTF_RenderText_Shaded(police, score, couleurNoire ,couleurBlanche);
  SDL_BlitSurface(texte, NULL, ecran, &positiontexte); /* Blit du texte */
scoretotadv=scoretotadv+scoresadv;
printf("%d \n",scoretot);
SDL_Flip(ecran);
}

SDL_Delay(1000);


SDL_Flip(ecran);
//SDL_BlitSurface(fleche1, NULL, ecran, &positionfleche1);
SDL_Delay(1000);






essaiadv++;
if(essaiadv==1)
{
essaiadv=0;
essai=0;
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));
back1(ecran);
mu(ecran);
//back2(ecran);
ciblef(ecran);
persoo(ecran);
//F=fopen("/dev/ttyACM0","a");
essaitot++;
SDL_Flip(ecran);
}

if (essaitot==3)
{
jaugex(ecran);
jaugeey(ecran);
//jauge(ecran);
//jaugee(ecran);
SDL_Flip(ecran);
SDL_Delay(5000);
}
//fclose(F);
}
if(essaitot>=3&&power==5)
{
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));
back1p(ecran);

back2p(ecran);

ciblef(ecran);
fleche(ecran);
persoo(ecran);


 
}


		
	
}


 return EXIT_SUCCESS; 
}



void mu (SDL_Surface *ecran)
{
SDL_Surface *mu = NULL ;
/** @fn Cette fonction
*affiche une image */
/**
*@brief un objet
*@details gestion de la music
*@todo NULL
*/

SDL_Rect positionmu;
positionmu.x = 400;
positionmu.y = 200;
mu= IMG_Load("monJeu/mus.png");
SDL_BlitSurface(mu, NULL, ecran, &positionmu);
SDL_FreeSurface(mu);
}

void muclic (SDL_Surface *ecran)
{
SDL_Surface *muclic = NULL ;
/** @fn Cette fonction
*affiche une image */
/**
*@brief un objet
*@details gestion de la music
*@todo NULL
*/

SDL_Rect positionmuclic;
positionmuclic.x = 400;
positionmuclic.y = 200;
muclic= IMG_Load("monJeu/musclic.png");
SDL_BlitSurface(muclic, NULL, ecran, &positionmuclic);
SDL_FreeSurface(muclic);
}





void figure1 (SDL_Surface *ecran)
{
SDL_Surface *figure1 = NULL ;
/** @fn Cette fonction
*affiche une image */
/**
*@brief une figure
*@details figure presente dans le decor
*@todo NULL
*/

SDL_Rect positionfigure1;
positionfigure1.x = 990;
positionfigure1.y = 95;
figure1= IMG_Load("monJeu/figure1.png");
SDL_BlitSurface(figure1, NULL, ecran, &positionfigure1);
SDL_FreeSurface(figure1);
}

void figure2 (SDL_Surface *ecran)
{
SDL_Surface *figure2 = NULL ;
/** @fn Cette fonction
*affiche une image */
/**
*@brief une figure
*@details figure presente dans le decor
*@todo NULL
*/

SDL_Rect positionfigure2;
positionfigure2.x = 990;
positionfigure2.y = 95;
figure2= IMG_Load("monJeu/figure2.png");
SDL_BlitSurface(figure2, NULL, ecran, &positionfigure2);
SDL_FreeSurface(figure2);
}




void ciblef (SDL_Surface *ecran)
{
SDL_Surface *cible = NULL ;
/** @fn Cette fonction
*affiche une image */
/**
*@brief La cible
*@details cible immobile
*@todo NULL
*/

SDL_Rect positioncible;
positioncible.x = 200;
positioncible.y = 25;
cible= IMG_Load("monJeu/ciblef.png");
SDL_BlitSurface(cible, NULL, ecran, &positioncible);
SDL_FreeSurface(cible);
}
void back1 (SDL_Surface *ecran)
{
/** @fn Cette fonction
*affiche une image */
/**
*@brief Le back1
*@details back1 immobile
*@todo 
*/
SDL_Surface *back1 = NULL ;
SDL_Rect positionFond;
positionFond.x = 0;
positionFond.y = 0;
back1= IMG_Load("monJeu/back1.png");
SDL_BlitSurface(back1, NULL, ecran, &positionFond);
SDL_FreeSurface(back1);
}



void back2 (SDL_Surface *ecran)
{
/** @fn Cette fonction
*affiche une image */
/**
*@brief Le back2
*@details back2 immobile
*@todo 
*/
SDL_Surface *back2 = NULL ;
SDL_Rect positionFond2;
positionFond2.x = 600;
positionFond2.y = 0;
back2= IMG_Load("monJeu/back2.png");
SDL_BlitSurface(back2, NULL, ecran, &positionFond2);
SDL_FreeSurface(back2);
}


void back1p (SDL_Surface *ecran)
{
/** @fn Cette fonction
*affiche une image */
/**
*@brief Le background
*@details background immobile
*@todo 
*/
SDL_Surface *back1p = NULL ;
SDL_Rect positionFond1p;
positionFond1p.x = 0;
positionFond1p.y = 0;
back1p = IMG_Load("monJeu/backp1.png");
SDL_BlitSurface(back1p, NULL, ecran, &positionFond1p);
SDL_FreeSurface(back1p);
}


void back2p (SDL_Surface *ecran)
{
/** @fn Cette fonction
*affiche une image */
/**
*@brief Le background
*@details background immobile
*@todo 
*/
SDL_Surface *back2p = NULL ;
SDL_Rect positionFond2p;
positionFond2p.x = 600;
positionFond2p.y = 0;
back2p= IMG_Load("monJeu/backp2.png");
SDL_BlitSurface(back2p, NULL, ecran, &positionFond2p);
SDL_FreeSurface(back2p);
}




void fleche (SDL_Surface *ecran)
{
/** @fn Cette fonction
*affiche une image */

SDL_Surface *fleche = NULL ;
SDL_Rect positionfleche;
positionfleche.x = 280;
positionfleche.y = 300;
fleche= IMG_Load("monJeu/flechettey0.png");
SDL_BlitSurface(fleche, NULL, ecran, &positionfleche);
SDL_FreeSurface(fleche);
}
void flechetir (SDL_Surface *ecran)
{

/**
*@brief Le tir de fleche
*@details cette fonction gere le tir de fleche
*@todo NULL
*/
/** @fn Cette fonction
*affiche une image */
int i;
SDL_Surface *flechetir = NULL ;
SDL_Rect positionflechetir;
positionflechetir.x = 280;
positionflechetir.y = 300;
flechetir= IMG_Load("monJeu/flechettey0.png");
SDL_BlitSurface(flechetir, NULL, ecran, &positionflechetir);
for(i=0;i<8;i++)
{

positionflechetir.y=positionflechetir.y-20;
//SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));
back1(ecran);
mu(ecran);
SDL_BlitSurface(flechetir, NULL, ecran, &positionflechetir);
ciblef(ecran);
persoo(ecran);
SDL_Delay(2);
SDL_Flip(ecran);

}
SDL_FreeSurface(flechetir);
}


void flechetiradv (SDL_Surface *ecran)
{
/** @fn Cette fonction
*affiche une image */
/**
*@brief Le tir de fleche
*@details cette fonction gere le tir de fleche
*@todo NULL
*/

int i;
SDL_Surface *flechetiradv = NULL ;
SDL_Rect positionflechetiradv;
positionflechetiradv.x = 280;
positionflechetiradv.y = 300;
flechetiradv= IMG_Load("monJeu/flechettey0.png");
SDL_BlitSurface(flechetiradv, NULL, ecran, &positionflechetiradv);
for(i=0;i<4;i++)
{

positionflechetiradv.y=positionflechetiradv.y-40;
//SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));
back1(ecran);
mu(ecran);
SDL_BlitSurface(flechetiradv, NULL, ecran, &positionflechetiradv);
ciblef(ecran);
mexini(ecran);

SDL_Delay(2);
SDL_Flip(ecran);

}
SDL_FreeSurface(flechetiradv);
}

void jauge (SDL_Surface *ecran)
{
/** @fn Cette fonction
*affiche une image */


SDL_Surface *jauge = NULL ;
SDL_Rect positionjauge;
positionjauge.x = -25;
positionjauge.y = 600;
jauge = IMG_Load("monJeu/jauge.png");
SDL_BlitSurface(jauge, NULL, ecran, &positionjauge);
SDL_FreeSurface(jauge);
}



void jaugex (SDL_Surface *ecran)
{
/** @fn Cette fonction
*affiche une image */


SDL_Surface *jaugex = NULL ;
SDL_Rect positionjaugex;
positionjaugex.x = -25;
positionjaugex.y = 600;
jaugex = IMG_Load("monJeu/jaugex.png");
SDL_BlitSurface(jaugex, NULL, ecran, &positionjaugex);
//SDL_FreeSurface(jaugex);
}

void jaugee (SDL_Surface *ecran)
{
/** @fn Cette fonction
*affiche une image */
SDL_Surface *jaugee = NULL ;
SDL_Rect positionjaugee;
positionjaugee.x = 1200;
positionjaugee.y = 0;
jaugee= IMG_Load("monJeu/jaugee.png");
SDL_BlitSurface(jaugee, NULL, ecran, &positionjaugee);
SDL_FreeSurface(jaugee);
}


void jaugeey (SDL_Surface *ecran)
{
/** @fn Cette fonction
*affiche une image */
SDL_Surface *jaugeey = NULL ;
SDL_Rect positionjaugeey;
positionjaugeey.x = 1200;
positionjaugeey.y = 0;
jaugeey= IMG_Load("monJeu/jaugeey.png");
SDL_BlitSurface(jaugeey, NULL, ecran, &positionjaugeey);
SDL_FreeSurface(jaugeey);
}


void persoo (SDL_Surface *ecran)
{
/** @fn Cette fonction
*affiche une image */
/**
*@brief affiche Le perso
*@details 
*@todo NULL
*/
SDL_Surface *persoo = NULL ;
SDL_Rect positionpersoo;
positionpersoo.x = 0;
positionpersoo.y = 230;
persoo= IMG_Load("monJeu/persotaha2(1).png");
SDL_BlitSurface(persoo, NULL, ecran, &positionpersoo);
SDL_FreeSurface(persoo);
}


void mexini (SDL_Surface *ecran)
{
/** @fn Cette fonction
*affiche une image */
/**
*@brief Le tir de fleche
*@details cette fonction gere le tir de fleche
*@todo NULL
*/
SDL_Surface *mexini = NULL ;
SDL_Rect positionmexini;
positionmexini.x = 0;
positionmexini.y = 230;
mexini= IMG_Load("monJeu/mexicain[1].png");
SDL_BlitSurface(mexini, NULL, ecran, &positionmexini);
SDL_FreeSurface(mexini);
}

void perso (SDL_Surface *ecran)
{

/** @fn Cette fonction affiche le mouvement du perso
*affiche une image serie d'image de perso */
/**
*@brief Le tir de fleche
*@details  Cette fonction affiche le mouvement du perso
*@todo NULL
*/
/** @fn Cette fonction
*affiche une image */
int i;
SDL_Surface *perso[3] ;
SDL_Rect positionperso;
positionperso.x = 0;
positionperso.y = 230;
perso[0]=IMG_Load("monJeu/persotaha2(1).png");
perso[1]=IMG_Load("monjeu/persotaha2(2).png");
perso[2]=IMG_Load("monjeu/persotaha2(3).png");
perso[3]=IMG_Load("monjeu/persotaha2(4).png");
SDL_BlitSurface(perso[2], NULL, ecran, &positionperso);
/*for(i=0;i<4;i++)
{
//SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));
//jaugee (ecran);
//jauge (ecran);
//background (ecran);
SDL_BlitSurface(perso[i], NULL, ecran, &positionperso);
SDL_Delay(70);
}
//SDL_FreeSurface(perso[4]);*/
}

void mexicain (SDL_Surface *ecran)
{
/** @fn Cette fonction
*affiche une image */

/** @fn Cette fonction affiche le mouvement du adversaire
*affiche une image serie d'image de l'adversaire */
/**
*@brief Le tir de fleche
*@details  Cette fonction affiche le mouvement de adversaire
*@todo NULL
*/
/** @fn Cette fonction
*affiche une image */
int i;
SDL_Surface *mexicain[4] ;
SDL_Rect positionmexicain;
positionmexicain.x = 0;
positionmexicain.y = 230;
mexicain[0]=IMG_Load("monJeu/mexicain[0].png");
mexicain[1]=IMG_Load("monjeu/mexicain[1].png");
mexicain[2]=IMG_Load("monjeu/mexicain[2].png");
mexicain[3]=IMG_Load("monjeu/mexicain[3].png");
for(i=0;i<4;i++)
{
//SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255));
jaugee (ecran);
jauge (ecran);
ciblef(ecran);
back1 (ecran);
SDL_BlitSurface(mexicain[i], NULL, ecran, &positionmexicain);
SDL_Delay(70);
}
}

void serveur2 (SDL_Surface *ecran)
{
/** @fn Cette fonction
*affiche une image */
SDL_Surface *serveur2 = NULL ;
SDL_Rect positionserveur2;
positionserveur2.x = 830;
positionserveur2.y = 20;
serveur2= IMG_Load("monJeu/serveur2.png");
SDL_BlitSurface(serveur2, NULL, ecran, &positionserveur2);
SDL_FreeSurface(serveur2);
}
void serveur (SDL_Surface *ecran)
{
/* @fn Cette fonction
*affiche une image */
SDL_Surface *serveur = NULL ;
SDL_Rect positionserveur;
positionserveur.x = 850;
positionserveur.y = 60;
serveur= IMG_Load("monJeu/serveur1.png");
SDL_BlitSurface(serveur, NULL, ecran, &positionserveur);
SDL_FreeSurface(serveur);
}
void affiche (SDL_Surface *ecran)
{
/** @fn Cette fonction
*affiche une image */
SDL_Surface *affiche = NULL ;
SDL_Rect positionaffiche;
positionaffiche.x = 400;
positionaffiche.y = 0;
affiche= IMG_Load("monJeu/affiche.png");
SDL_BlitSurface(affiche, NULL, ecran, &positionaffiche);
SDL_FreeSurface(affiche);
}
void gris (SDL_Surface *ecran)
{
/** @fn Cette fonction
*affiche une image */
SDL_Surface *gris = NULL ;
SDL_Rect positiongris;
positiongris.x = 0;
positiongris.y = 0;
gris= IMG_Load("monJeu/gris.png");
SDL_BlitSurface(gris, NULL, ecran, &positiongris);


SDL_FreeSurface(gris);
}

void menu1 (SDL_Surface *ecran)
{
/** @fn Cette fonction
*affiche une image */
/** @fn Cette fonction affiche la gestion du menu
*affiche une image serie d'image de perso */
/**
*@brief Le tir de fleche
*@details  Cette fonction affiche la gestion du menu
*@todo NULL
*/
/** @fn Cette fonction
*affiche une image */
SDL_Surface *NewGame = NULL,*LoadGame=NULL,*QuickGame=NULL,*Option=NULL ;
SDL_Rect positionNewGame;
SDL_Rect positionLoadGame;
SDL_Rect positionQuickGame;
SDL_Rect positionOption;
positionNewGame.x =80;
positionNewGame.y = 0;
positionLoadGame.x =80;
positionLoadGame.y = 100;
positionQuickGame.x =80;
positionQuickGame.y = 200;
positionOption.x =80;
positionOption.y = 300;
NewGame=IMG_Load("monJeu/touches/newgame.png");
LoadGame= IMG_Load("monJeu/touches/loadgame.png");
QuickGame=IMG_Load("monJeu/touches/quickgame.png");
Option= IMG_Load("monJeu/touches/option.png");
SDL_BlitSurface(NewGame, NULL, ecran, &positionNewGame);
SDL_BlitSurface(LoadGame, NULL, ecran, &positionLoadGame);
SDL_BlitSurface(QuickGame, NULL, ecran, &positionQuickGame);
SDL_BlitSurface(Option, NULL, ecran, &positionOption);
SDL_FreeSurface(NewGame);
SDL_FreeSurface(LoadGame);
SDL_FreeSurface(Option);
SDL_FreeSurface(QuickGame);
}

void newgameclic (SDL_Surface *ecran)
{
/** @fn Cette fonction
*affiche une image */
SDL_Surface *NewGameClic = NULL ;
SDL_Rect positionNewGameClic;
positionNewGameClic.x = 80;
positionNewGameClic.y = 0;
NewGameClic= IMG_Load("monJeu/touches/newgameclic.png");
SDL_BlitSurface(NewGameClic, NULL, ecran, &positionNewGameClic);


SDL_FreeSurface(NewGameClic);
}


void loadgameclic (SDL_Surface *ecran)
{
/** @fn Cette fonction
*affiche une image */
SDL_Surface *LoadGameClic = NULL ;
SDL_Rect positionLoadGameClic;
positionLoadGameClic.x = 80;
positionLoadGameClic.y = 100;
LoadGameClic= IMG_Load("monJeu/touches/loadgameclic.png");
SDL_BlitSurface(LoadGameClic, NULL, ecran, &positionLoadGameClic);


SDL_FreeSurface(LoadGameClic);
}


void quickgameclic (SDL_Surface *ecran)
{
/** @fn Cette fonction
*affiche une image */
SDL_Surface *QuickGameClic = NULL ;
SDL_Rect positionQuickGameClic;
positionQuickGameClic.x = 80;
positionQuickGameClic.y = 200;
QuickGameClic= IMG_Load("monJeu/touches/quickgameclic.png");
SDL_BlitSurface(QuickGameClic, NULL, ecran, &positionQuickGameClic);


SDL_FreeSurface(QuickGameClic);
}
void optionclic (SDL_Surface *ecran)
{
/** @fn Cette fonction
*affiche une image */
SDL_Surface *OptionClic = NULL ;
SDL_Rect positionOptionClic;
positionOptionClic.x = 80;
positionOptionClic.y = 300;
OptionClic= IMG_Load("monJeu/touches/optionclic.png");
SDL_BlitSurface(OptionClic, NULL, ecran, &positionOptionClic);


SDL_FreeSurface(OptionClic);
}
void getPixelColor(int x, int y, SDL_Surface *map,Uint8 *r,Uint8 *g,Uint8 *b) 
{
/** @fn Cette fonction
*permet l'identification grace aux pixels des couleurs */
 

/** @fn Cette colision par pixel
**/
/**
*@brief Lecolision par pixels
*@details  Cette fonction  gere la colision su score par pixel
*@todo NULL
*/
/** @fn Cette fonction
*affiche une image */
    if(x>0 && y>0 && x<map->w && y<map->h)
    {
        int bpp = map->format->BytesPerPixel;
      
        Uint8 *p = (Uint8 *)map->pixels + y * map->pitch + x * bpp;
        SDL_GetRGB(*(Uint32 *)p,map->format, r, g, b);
 
    }
    else // sinon on renvoie noir, pour éviter de planter dans certains cas
    {
        *r = 0;
        *g = 0;
        *b = 0;
    }
  
}









void textee (SDL_Surface *ecran)
{
TTF_Font *police = NULL;
SDL_Color couleurNoire = {0, 0, 0},couleurBlanche = {255, 255, 255};

SDL_Surface *textee = NULL;
SDL_Rect positiontextee;
positiontextee.x =200;
positiontextee.y =100;
  police = TTF_OpenFont("police/AA.otf", 30);
 textee = TTF_RenderText_Shaded(police,"STAGE 1",couleurNoire, couleurBlanche);
 positiontextee.x =20;
        positiontextee.y = 40;
      textee = TTF_RenderText_Shaded(police,"\n 1HELP:",couleurNoire, couleurBlanche);
 positiontextee.x =20;
        positiontextee.y = 100;
  SDL_BlitSurface(textee, NULL, ecran, &positiontextee); 
      textee = TTF_RenderText_Shaded(police,"to win you need a higher score to the Mexican boss",couleurNoire, couleurBlanche);
 positiontextee.x =20;
        positiontextee.y = 140;
  SDL_BlitSurface(textee, NULL, ecran, &positiontextee); 
      textee = TTF_RenderText_Shaded(police,"\nHow to play?",couleurNoire, couleurBlanche);
 positiontextee.x =20;
        positiontextee.y = 200;
  SDL_BlitSurface(textee, NULL, ecran, &positiontextee); 
      textee = TTF_RenderText_Shaded(police,"you should aim fOr vertical and horizontal cursor at the center of the ",couleurNoire, couleurBlanche);
 positiontextee.x =20;
        positiontextee.y = 240;
  SDL_BlitSurface(textee, NULL, ecran, &positiontextee); 
     textee = TTF_RenderText_Shaded(police," gauge fOr ",couleurNoire, couleurBlanche);
 positiontextee.x =20;
        positiontextee.y = 300;
  SDL_BlitSurface(textee, NULL, ecran, &positiontextee); 
 textee = TTF_RenderText_Shaded(police," maximum points.",couleurNoire, couleurBlanche);
 positiontextee.x =20;
        positiontextee.y = 340;
  SDL_BlitSurface(textee, NULL, ecran, &positiontextee); 
      textee = TTF_RenderText_Shaded(police,"press w the first time to adjust the horizontal cursor to x to adjust the  ",couleurNoire, couleurBlanche);
 positiontextee.x =20;
        positiontextee.y = 400;
        SDL_BlitSurface(textee, NULL, ecran, &positiontextee); 
  textee = TTF_RenderText_Shaded(police," vertical slider",couleurNoire, couleurBlanche);
 positiontextee.x =20;
        positiontextee.y = 440;
        SDL_BlitSurface(textee, NULL, ecran, &positiontextee); 


SDL_Flip(ecran);
SDL_Delay(1000);
}











void UpdateEvents(Input* in)
{
/** @fn Cette fonction
*est la boucle principale de notre jeu */
/** @fn Cette fonction facilite la gestion des evenements
*affiche une image serie d'image de perso */
/**
*@brief Le tir de fleche
*@details   Cette fonction facilite la gestion des evenements
*@todo NULL
*/
/** @fn Cette fonction
*affiche une image */















	SDL_Event event;
	while(SDL_PollEvent(&event))
	{


		switch (event.type)
		{
		case SDL_KEYDOWN:
			in->key[event.key.keysym.sym]=1;
			break;
		case SDL_KEYUP:
			in->key[event.key.keysym.sym]=0;
			break;
		case SDL_MOUSEMOTION:
			in->mousex=event.motion.x;
			in->mousey=event.motion.y;
			in->mousexrel=event.motion.x;
			in->mouseyrel=event.motion.y;
			break;
		case SDL_MOUSEBUTTONDOWN:
			in->mousebuttons[event.button.button]=1;
			break;
		case SDL_MOUSEBUTTONUP:
			in->mousebuttons[event.button.button]=0;
			break;
		case SDL_QUIT:
			in->quit = 1;
			break;
		default:
			break;
		}
	}
}
